import {GETROLELIST, GETROLEINFO, UPDATEROLE, SAVEROLE, ROLESELECT, DELETEROLE} from '@/services/api'
import {request, METHOD, removeAuthorization} from '@/utils/request'

/**
 * 角色列表
 * @param page 页数
 * @param limit 每页条数
 *  * @param roleName 角色名称
 * @returns {Promise<AxiosResponse<T>>}
 */
export async function getRoleList(page,limit, roleName) {
  return request(GETROLELIST, METHOD.GET, {
    page: page,
    limit: limit,
    roleName: roleName
  })
}
/**
 * 角色详情
 * @param roleId 角色id
 * @returns {Promise<AxiosResponse<T>>}
 */
export async function getRoleInfo(roleId) {
  return request(GETROLEINFO, METHOD.GET, {
    roleId: roleId,
  })
}

/**
 * 修改角色
 * @param roleId 角色id
 * @param roleName 角色名称
 * @param remark 角色名称
 * @param menuIdList[] 菜单集合
 * @returns {Promise<AxiosResponse<T>>}
 */
export async function updateRole(roleId,roleName,remark,menuIdList) {
  return request(UPDATEROLE, METHOD.POST, {
    id: roleId,
    roleName: roleName,
    remark: remark,
    menuIdList: menuIdList,
  })
}

/**
 * t添加角色
 * @param roleName 角色名称
 * @param remark 角色名称
 * @param menuIdList[] 菜单集合
 * @returns {Promise<AxiosResponse<T>>}
 */
export async function saveRole(roleName,remark,menuIdList) {
  return request(SAVEROLE, METHOD.POST, {
    roleName: roleName,
    remark: remark,
    menuIdList: menuIdList,
  })
}

/**
 * 拥有的角色列表
 * @param roleName 角色名称
 * @param remark 角色名称
 * @param menuIdList[] 菜单集合
 * @returns {Promise<AxiosResponse<T>>}
 */
export async function roleSelect(roleName,remark,menuIdList) {
  return request(ROLESELECT, METHOD.GET)
}

/**
 * 删除角色
 * @param id 角色id
 * @returns {Promise<AxiosResponse<T>>}
 */
export async function deleteRole(id) {
    return request(DELETEROLE, METHOD.POST, {
        ids: id
    })
}
export default {
  getRoleList,
  getRoleInfo,
  updateRole,
  saveRole,
  roleSelect,
    deleteRole
}
